package com.fpd.model.vo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fpd.enums.AddressResultEnum;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @desc 客户基础信息
 * @author wujiangbo
 * @date 2019年11月6日 上午10:23:20
 */
@Data
public class CustomerBaseInfoEditVO implements Serializable {

	/**
	 * 序列号
	 */
	private static final long serialVersionUID = 805480261644648769L;

	/**
	 * 主键ID
	 */
	private String id;

	/**
	 * 创建时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createTime;

	/**
	 * 更新时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date updateTime;

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date takeBackPlanTime;

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date beginTimeCase;

	private String batchNo;

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date leaveDate;

	/**
	 * 客户号
	 */
	private String custNo;

	/**
	 * 合同号
	 */
	private String contractNumber;

	/**
	 * 客户姓名
	 */
	private String custName;

	/**
	 * 身份证号
	 */
	private String custIdNumber;

	/**
	 * 性别（0：男；1：女；2：保密）
	 */
	private String custSex;

	/**
	 * 出生日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date birthday;

	/**
	 * 户籍地址
	 */
	private String registerAddress;

	/**
	 * 手机号码
	 */
	private String phoneNumber;

	/**
	 * 委托方
	 */
	private String thirdParty;

	/**
	 * 电子邮箱
	 */
	private String email;

	/**
	 * 现居住地
	 */
	private String liveAddress;

	/**
	 * 家庭电话
	 */
	private String homePhone;

	/**
	 * 单位名称
	 */
	private String unitName;

	/**
	 * 单位地址
	 */
	private String unitAddress;

	/**
	 * 单位电话
	 */
	private String unitPhone;
	
	/**
	 * 其他地址
	 */
	private String otherAddress;

	/**
	 * 划扣银行卡号
	 */
	private String bankNumber;

	/**
	 * 划扣银行名称
	 */
	private String bankName;

	/**
	 * 还款可能性
	 */
	private BigDecimal repaymentPossibility;

	/**
	 * 客户类型（1：A类客户；2：B类客户；3：C类客户；4：D类客户）
	 */
	private String custType;

	private Integer age;

	private String registerProvince;

	private String registerCity;

	private String registerTown;

	private String registerVillages;

	private String registerStreet;

	private String registerBuildingNo;

	private String registerHouseNo;

	private String registerPostcode;

	private String liveProvince;

	private String liveCity;

	private String liveTown;

	private String liveVillages;

	private String liveStreet;

	private String liveBuildingNo;

	private String liveHouseNo;

	private String livePostcode;

	private String unitProvince;

	private String unitCity;

	private String unitTown;

	private String unitVillages;

	private String unitStreet;

	private String unitBuildingNo;

	private String unitHouseNo;

	private String unitPostcode;

	private int caseType;// 案件类型

	private Integer payAmountYet;// 已还金额

	private Integer idCheckState;// 身份信息核对状态（0：核对失败；1：核对成功；2：未核对）

	private BigDecimal isAnalysis;// 是否已进行数据分析（0：未分析；1：已分析）

	@ApiModelProperty(value = "年龄段(1:18~25岁，2：26~35岁，3：36~45岁，4：46岁及以上)", example = "", hidden = false)
	private int agePart;

	private String secondContact;

	//第二联系人关系
	private String secondRelation;

	//第二联系人姓名
	private String secondName;

	//第二联系人手机号
	private String secondPhone;
	
	private String custLetterType; //客户函件分类
	
	private String editAddress;//户籍地址修复状态
	
   private String editAddress2;//居住地址修复状态
	
	private String editAddress3;//单位地址修复状态
	
	private String editAddress4;//其他地址修复状态
	
	private String editAddressName;
	private String editAddressName2;
	private String editAddressName3;
	private String editAddressName4;
	
	private String sendAddress;//已发函地址
	
	private String selectAddress;//客户选择的发函地址
	
	private String registerAddress2;//修复后的户籍地址
	
	private String liveAddress2;//修复后的居住地址
	
	private String unitAddress2;//修复后的单位地址
	
	private String otherAddress2;//修复后的其他地址  
	
	private BigDecimal score; //征信评分
	
	private String isRepent;//是否重复委案
	
	private String  isGz;//0:不共债 1：共债
	
	private BigDecimal yuqiAmount; //客户逾期金额
	
	private int yuqiDay;//客户逾期最大天数
	
	private int contractCount; //客户案件数
	
	private String innerRecover; // 是否内部收回 0否 1是 默认否
	
	private String innerLeave;//是否内部留案 0否 1是 默认否
	
	private String lsStatus;//临时发函标识
	
	private String sxType; //失信分类
	
	private String thStatus;//签收退回标识，1表示已经退回
	
	//函件类型 1代表 普通件  2代表密保件
    private String letterType;
	
	public String getEditAddressName() {
		return AddressResultEnum.getNameByValue(this.editAddress);
	}

	public String getEditAddressName2() {
		return AddressResultEnum.getNameByValue(this.editAddress2);
	}

	public String getEditAddressName3() {
		return AddressResultEnum.getNameByValue(this.editAddress3);
	}

	public String getEditAddressName4() {
		return AddressResultEnum.getNameByValue(this.editAddress4);
	}
}
